package com.smartstate.admin.biz.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smartstate.admin.biz.entity.bo.Permission;
import com.smartstate.admin.biz.entity.bo.User;
import com.smartstate.admin.biz.entity.vo.PermissionVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface PermissionMapper extends BaseMapper<Permission> {


    /**
     * 根据用户id查询用户的权限
     */
    List<PermissionVo> findPermissionByUserId(@Param(value = "userId") String userId);

    /**
     * 根据用户id查询用户的权限
     */
    List<PermissionVo> findAppPermissionByUserId(@Param(value = "userId") String userId);

    /**
     * 根据角色id查询权限
     */
    List<PermissionVo> findAuthorityByRoleId(@Param("id") String id);

    /**
     * 根据用户名称查询该用户的权限
     */
    List<PermissionVo> getPermissionByUserId(String userId);

    /**
     * 根据用户名称查询该用户的app权限
     */
    List<PermissionVo> getAppPermissionByUserId(String userId);

    /**
     * 查询权限分页列表
     */
    List<PermissionVo> selectPermissionList(Page<PermissionVo> page, @Param("user") User user);

    /**
     * 批量插入
     */
    int insertBatch(@Param("list") List<Permission> permissions);

    /**
     * 获取某角色的web权限
     */
    List<PermissionVo> selectByRoleId(String id);
    /**
     * 获取某角色的app权限
     */
    List<PermissionVo> selectAppByRoleId(String id);

    /**
     * 查询改企业下所有的权限列表
     */
    List<Permission> selectByCompId(Page<PermissionVo> page,String enterpriseId);

    List<Permission> selectByCompId(String enterpriseId);

    List<Permission> selectAppByCompId(String enterpriseId);
}